#pragma once
#include "gamestate.h"
#include "Utility\FixedArray.h"

class Camera;
class Geometries;
class Level;
class PhysicsGeometry;
class Player;
class PhysicsWorld;

enum eInputEventType;

class GameplayState :
	public GameState
{
public:
	GameplayState(void);
	~GameplayState(void);

	bool Update(float fDeltaTime);
	void Draw();
	bool InputEvent(eInputEventType type, u32 button);
	bool MouseUpdate(const Vector4& mouse) ;

	void ScreenSpaceToWorld(Vector4& vScreen);

private:
	Camera*							m_pCamera;
	FixedArray<Geometries*>			m_aGeometries;
	FixedArray<PhysicsGeometry*>	m_aCollisionGeometry;
	Level*							m_pCurrentLevel;
	Player*							m_pPlayer;
	PhysicsWorld*					m_world;
};

